/*
 * @Author: chentao
 * @Date: 2022-05-05 15:34:54
 * @Last Modified by: chentao
 * @Last Modified time: 2022-05-11 17:03:02
 */
//1.枚举类型默认 从0开始 如果第一个为10假设 后面自动加1  这个默认是数值型枚举
var EnumTest;
(function (EnumTest) {
    EnumTest[EnumTest["Up"] = 10] = "Up";
    EnumTest[EnumTest["Down"] = 11] = "Down";
    EnumTest[EnumTest["Left"] = 12] = "Left";
    EnumTest[EnumTest["Right"] = 13] = "Right";
})(EnumTest || (EnumTest = {}));
console.log("\u8F93\u51FA\u679A\u4E3E\u7C7B\u578B\u7684\u503CUp:".concat(EnumTest.Up));
console.log("\u8F93\u51FA\u679A\u4E3E\u7C7B\u578B\u7684\u503CDown:".concat(EnumTest.Down));
console.log("\u8F93\u51FA\u679A\u4E3E\u7C7B\u578B\u7684\u503CLeft:".concat(EnumTest.Left));
console.log("\u8F93\u51FA\u679A\u4E3E\u7C7B\u578B\u7684\u503CLeft:".concat(EnumTest.Right));
//2.字符串类型枚举
var EnumString;
(function (EnumString) {
    EnumString["Up"] = "Up";
    EnumString["Down"] = "Down";
    EnumString["Left"] = "Left";
    EnumString["Right"] = "Right";
})(EnumString || (EnumString = {}));
console.log("EnumString.Up=".concat(EnumString.Up));
console.log("EnumString.Down=".concat(EnumString.Down));
console.log("EnumString.Left=".concat(EnumString.Left));
console.log("EnumString.Right=".concat(EnumString.Right));
//3.异构型枚举 就是指的字符串跟数字都支持
var EnumColor;
(function (EnumColor) {
    EnumColor[EnumColor["Black"] = 0] = "Black";
    EnumColor["white"] = "White";
})(EnumColor || (EnumColor = {}));
//4.枚举映射
var EnumBool;
(function (EnumBool) {
    EnumBool[EnumBool["FALSE"] = 0] = "FALSE";
    EnumBool[EnumBool["TRUE"] = 1] = "TRUE";
})(EnumBool || (EnumBool = {}));
console.log(EnumBool.FALSE); //0  
console.log(EnumBool.FALSE); //1
//对于数值型枚举，不但可以通过枚举成员名来获取枚举成员值，也可以反过来通过枚举成员值去获取枚举成员名。下例中，通过枚举成员值“Bool.False”能够获取其对应的枚举成员名，即字符串“'False'”：
console.log(EnumBool[EnumBool.FALSE]);
console.log(EnumBool[EnumBool.TRUE]); //对于字符串枚举和异构型枚举，则不能够通过枚举成员值去获取枚举成员名。
